#include<stdio.h>

int main(void)
{
	int num1, num2;
	scanf("%d%d",&num1,&num2);

	printf("num1: %d, num2: %d\n", num1, num2);


	//交换1
	int tem;
	tem = num1;
	num1 = num2;
	num2 = tem;
	printf("num1: %d, num2: %d\n", num1, num2);

	//交换2
	num1 = num1 ^ num2;
	num2 = num1 ^ num2;
	num1 = num1 ^ num2;
	printf("num1: %d, num2: %d\n", num1, num2);

	//交换3
	num1 = num1 + num2;
	num2 = num1 - num2;
	num1 = num1 - num2;
	printf("num1: %d, num2: %d\n", num1, num2);
   
	//交换4  
	int *p1 = &num1;
	int *p2 = &num2;
	*p1 = *p1 + *p2 - (*p2 = *p1); //本条语句  取值和编译器相关  和语法关系不大  不再研究
	printf("num1: %d, num2: %d\n", num1, num2);

	return 0;
}
